Recent advances in computer performance have enabled graphics systems to provide more realistic graphical images using personal computers, home video game computers, handheld devices, and the like. In such graphics systems, a number of procedures are executed to render or draw graphics primitives to the screen of the system. A graphics primitive is a basic component of a graphic, such as a point, line, polygon, or the like. Rendered images are formed with combinations of these graphics primitives. Many procedures may be utilized to perform three-dimensional (3-D) graphics rendering.
Specialized graphics processing units (GPUs) have been developed to increase the speed at which graphics rendering procedures are executed. The GPUs typically incorporate one or more rendering pipelines. Each pipeline includes a number of hardware-based functional units that are designed for high-speed execution of graphics instructions/data. Generally, the instructions/data are fed into the front end of a pipeline and the computed results emerge at the back end of a pipeline. The hardware-based functional units, cache memories, firmware, and the like, of the GPUs are designed to operate on the basic graphics primitives and produce real-time rendered 3-D images.
There is increasing interest in rendering 3-D graphical images in portable or handheld devices such as cell phones, personal digital assistants (PDAs), and other devices. However, portable or handheld devices generally have limitations relative to more full-sized devices such as desktop computers. For example, because portable devices are typically battery-powered, power consumption is a concern. Also, because of their smaller size, the space available inside portable devices is limited. The desire is to quickly perform realistic 3-D graphics rendering in a handheld device, within the limitations of such devices.